package presentation;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import businessObject.GestionMuro;

import data.IDestinoDAO;
import data.IOrigenDAO;
import data.JDBCDestinoDAO;
import data.JDBCOrigenDAO;

/**
 * Servlet implementation class GestionNuevoDestinoOrigen
 */
public class GestionNuevoDestinoOrigen extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public GestionNuevoDestinoOrigen() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
	
		Integer idUsuario = (Integer)session.getAttribute("session.idusuario");
		String destino=request.getParameter("destino");
		String mascota=request.getParameter("mascota");
		String origen=request.getParameter("origen");
		String resource=request.getParameter("resource");
		
		if(idUsuario!=null){
			boolean lugarYMascotaMal=lugarYMascotaMal(mascota, destino, origen);
			if(!lugarYMascotaMal){
			doAction(response,resource, idUsuario, destino, mascota, origen);
			}else{
				response.sendRedirect(resource+"&lugarmascota=no");
			}
		}else{
			response.sendRedirect(resource);
			//usuario
		}
		
				
	}

	private void doAction(HttpServletResponse response,String resource, Integer idUsuario,
			String destino, String mascota, String origen) throws IOException {
		
		if(mascota!=null && !mascota.equals("")){
			
			if(destino!=null && !destino.equals("")){
				Integer idDestino=Integer.parseInt(destino);
				Integer idMascota=Integer.parseInt(mascota);
					
				doDestino(idDestino, idMascota, idUsuario);

				response.sendRedirect(resource);
				
			}else if(origen!=null && !origen.equals("")){
				Integer idOrigen=Integer.parseInt(origen);
				Integer idMascota=Integer.parseInt(mascota);
				
				doOrigen(idOrigen, idMascota, idUsuario);
				
				response.sendRedirect(resource);

			}else{
				response.sendRedirect(resource+"&lugar=no");

			}
			
		}else{//mascota
		response.sendRedirect(resource+"&mascota=no");
		}
	}
	
	private boolean lugarYMascotaMal(String mascota, String origen,String destino){
		
		if(mascota==null || mascota.equals("")){
			if(origen==null || origen.equals("")){
				if(destino==null || destino.equals("")){
				return true;
				}
			}
		}
		return false;

	}

	private void doDestino(int idDestino,int idMascota,int idUsuario){

		GestionMuro gestion= GestionMuro.getInstance();
		gestion.insertDestino(idUsuario, idMascota, idDestino);
		
	}
	
	private void doOrigen(int idOrigen,int idMascota,int idUsuario){

		GestionMuro gestion= GestionMuro.getInstance();
		gestion.insertOrigen(idUsuario, idMascota, idOrigen);
		
	}

}
